Rubyでは、 ハッピーな状態を超える とは、直線的な論理から防御的な姿勢へと移行することを意味します。ここで失敗は、プログラムの終了という悲劇的な出来事ではなく、 一級のオブジェクト 一級のオブジェクトとして扱われます。
1. 例外の階層
Rubyは、 図8.1に示される明確な例外の階層をあらかじめ定義しています。すべてのエラーはこのツリー内のクラスのインスタンスであり、 Exception ルートから始まります。このツリーを理解することは非常に重要です。アプリケーションレベルのエラーは一般的に StandardErrorから派生しますが、システムレベルの障害(例: NoMemoryError)は直接 Exceptionから派生します。
2. エラーをデータオブジェクトとして扱う
低レベル言語のようにエラーが単なる戻り値の場合とは異なり、Rubyでは コンテキストをパッケージ化するメッセージ文字列や実行バックトレースを含む情報が正式なオブジェクトにまとめられます。これにより開発者はランタイムでの中断を、継承を通じて確認・管理可能なデータとして扱うことができます。
アーキテクチャ上の意図
この階層は、捕獲すべきではない致命的なシステム障害(例:信号など)と、回復可能なアプリケーションエラー(StandardError)を区別しています。
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>